package pe.gob.sunarp.entidad;

import java.io.Serializable;
import javax.persistence.*;
import java.util.Date;
import java.util.Set;


/**
 * The persistent class for the TITULO database table.
 * 
 */
@Entity
@Table(name="TITULO")
public class Titulo implements Serializable {
	private static final long serialVersionUID = 1L;
	private long refnumTitu;
	private String aaHojaPres;
	private String agntSync;
	private String anoTitu;
	private String cuo;
	private Date fecVenc;
	private String numHojaPres;
	private String numTitu;
	private String presOficRegId;
	private String presRegPubId;
	private String sistemaId;
	private Date tsPresent;
	private Date tsUltSync;
	private Set<ActosTitulo> actosTitulos;
	private Set<DetalleTitulo> detalleTitulos;
	private ReservaRzSoc reservaRzSoc;
	private TmAreaRegistral tmAreaRegistral;
	private OficRegistral oficRegistral;
	private Set<TituloDocumento> tituloDocumentos;
	private Set<TituPlaca> tituPlacas;
	private Set<TituSuspen> tituSuspens;

    public Titulo() {
    }


	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="REFNUM_TITU", unique=true, nullable=false)
	public long getRefnumTitu() {
		return this.refnumTitu;
	}

	public void setRefnumTitu(long refnumTitu) {
		this.refnumTitu = refnumTitu;
	}


	@Column(name="AA_HOJA_PRES", nullable=false, length=4)
	public String getAaHojaPres() {
		return this.aaHojaPres;
	}

	public void setAaHojaPres(String aaHojaPres) {
		this.aaHojaPres = aaHojaPres;
	}


	@Column(name="AGNT_SYNC", length=4)
	public String getAgntSync() {
		return this.agntSync;
	}

	public void setAgntSync(String agntSync) {
		this.agntSync = agntSync;
	}


	@Column(name="ANO_TITU", nullable=false, length=4)
	public String getAnoTitu() {
		return this.anoTitu;
	}

	public void setAnoTitu(String anoTitu) {
		this.anoTitu = anoTitu;
	}


	@Column(length=10)
	public String getCuo() {
		return this.cuo;
	}

	public void setCuo(String cuo) {
		this.cuo = cuo;
	}


    @Temporal( TemporalType.DATE)
	@Column(name="FEC_VENC")
	public Date getFecVenc() {
		return this.fecVenc;
	}

	public void setFecVenc(Date fecVenc) {
		this.fecVenc = fecVenc;
	}


	@Column(name="NUM_HOJA_PRES", nullable=false, length=10)
	public String getNumHojaPres() {
		return this.numHojaPres;
	}

	public void setNumHojaPres(String numHojaPres) {
		this.numHojaPres = numHojaPres;
	}


	@Column(name="NUM_TITU", nullable=false, length=8)
	public String getNumTitu() {
		return this.numTitu;
	}

	public void setNumTitu(String numTitu) {
		this.numTitu = numTitu;
	}


	@Column(name="PRES_OFIC_REG_ID", nullable=false, length=2)
	public String getPresOficRegId() {
		return this.presOficRegId;
	}

	public void setPresOficRegId(String presOficRegId) {
		this.presOficRegId = presOficRegId;
	}


	@Column(name="PRES_REG_PUB_ID", nullable=false, length=2)
	public String getPresRegPubId() {
		return this.presRegPubId;
	}

	public void setPresRegPubId(String presRegPubId) {
		this.presRegPubId = presRegPubId;
	}


	@Column(name="SISTEMA_ID", nullable=false, length=3)
	public String getSistemaId() {
		return this.sistemaId;
	}

	public void setSistemaId(String sistemaId) {
		this.sistemaId = sistemaId;
	}


    @Temporal( TemporalType.DATE)
	@Column(name="TS_PRESENT", nullable=false)
	public Date getTsPresent() {
		return this.tsPresent;
	}

	public void setTsPresent(Date tsPresent) {
		this.tsPresent = tsPresent;
	}


    @Temporal( TemporalType.DATE)
	@Column(name="TS_ULT_SYNC")
	public Date getTsUltSync() {
		return this.tsUltSync;
	}

	public void setTsUltSync(Date tsUltSync) {
		this.tsUltSync = tsUltSync;
	}


	//bi-directional many-to-one association to ActosTitulo
	@OneToMany(mappedBy="titulo")
	public Set<ActosTitulo> getActosTitulos() {
		return this.actosTitulos;
	}

	public void setActosTitulos(Set<ActosTitulo> actosTitulos) {
		this.actosTitulos = actosTitulos;
	}
	

	//bi-directional many-to-one association to DetalleTitulo
	@OneToMany(mappedBy="titulo")
	public Set<DetalleTitulo> getDetalleTitulos() {
		return this.detalleTitulos;
	}

	public void setDetalleTitulos(Set<DetalleTitulo> detalleTitulos) {
		this.detalleTitulos = detalleTitulos;
	}
	

	//bi-directional one-to-one association to ReservaRzSoc
	@OneToOne(mappedBy="titulo")
	public ReservaRzSoc getReservaRzSoc() {
		return this.reservaRzSoc;
	}

	public void setReservaRzSoc(ReservaRzSoc reservaRzSoc) {
		this.reservaRzSoc = reservaRzSoc;
	}
	

	//bi-directional many-to-one association to TmAreaRegistral
    @ManyToOne
	@JoinColumn(name="AREA_REG_ID")
	public TmAreaRegistral getTmAreaRegistral() {
		return this.tmAreaRegistral;
	}

	public void setTmAreaRegistral(TmAreaRegistral tmAreaRegistral) {
		this.tmAreaRegistral = tmAreaRegistral;
	}
	

	//bi-directional many-to-one association to OficRegistral
    @ManyToOne
	@JoinColumns({
		@JoinColumn(name="OFIC_REG_ID", referencedColumnName="OFIC_REG_ID", nullable=false),
		@JoinColumn(name="REG_PUB_ID", referencedColumnName="REG_PUB_ID", nullable=false)
		})
	public OficRegistral getOficRegistral() {
		return this.oficRegistral;
	}

	public void setOficRegistral(OficRegistral oficRegistral) {
		this.oficRegistral = oficRegistral;
	}
	

	//bi-directional many-to-one association to TituloDocumento
	@OneToMany(mappedBy="titulo")
	public Set<TituloDocumento> getTituloDocumentos() {
		return this.tituloDocumentos;
	}

	public void setTituloDocumentos(Set<TituloDocumento> tituloDocumentos) {
		this.tituloDocumentos = tituloDocumentos;
	}
	

	//bi-directional many-to-one association to TituPlaca
	@OneToMany(mappedBy="titulo")
	public Set<TituPlaca> getTituPlacas() {
		return this.tituPlacas;
	}

	public void setTituPlacas(Set<TituPlaca> tituPlacas) {
		this.tituPlacas = tituPlacas;
	}
	

	//bi-directional many-to-one association to TituSuspen
	@OneToMany(mappedBy="titulo")
	public Set<TituSuspen> getTituSuspens() {
		return this.tituSuspens;
	}

	public void setTituSuspens(Set<TituSuspen> tituSuspens) {
		this.tituSuspens = tituSuspens;
	}
	
}